package com.pisolution.scheduler.datasource.command;

import com.baomidou.mybatisplus.annotation.EnumValue;

/**
 * 系统控制指令类型.
 *
 * @author sora
 * @version 0.1.0
 */
public enum CommandType {
    // -------------------------------------------------------------------------------------------------
    //  流程控制 (工作流与任务实例)
    // -------------------------------------------------------------------------------------------------

    /** 运行. */
    RUN(0),

    /** 停止. */
    STOP(1),

    /** 暂停. */
    PAUSE(2),

    /** 重新运行. */
    RERUN(3),

    /** 恢复失败. */
    RECOVER_FAILURE(4),

    /** 恢复运行. */
    RECOVER_SUSPENDED(5),

    /** 取消等待. */
    RECOVER_WAITING_THREAD(6),

    // -------------------------------------------------------------------------------------------------
    //  系统控制 (调度系统内部指令)
    // -------------------------------------------------------------------------------------------------

    /** 管理节点失效转移. */
    RECOVER_FAULT_TOLERANT(7);

    // -------------------------------------------------------------------------------------------------

    /** 当前指令在集合中的序号. */
    @EnumValue
    private final int code;

    // -------------------------------------------------------------------------------------------------
    //  初始化
    // -------------------------------------------------------------------------------------------------

    CommandType(final int code) {
        this.code = code;
    }
}
